home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 22 / PC Actual CD 22.iso / progs / Netobj / CDK / NetObjectsFusionCDK5_97.exe / _SETUP.1 / BBSComp.nfx (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-30  |  9.6 KB  |  277 lines

  1. public class BBSComp extends ComponentApp {
  2.    DAssetManager cam;
  3.    DDrawPicture cdp;
  4.    int idScript;
  5.    String Subdirectory;
  6.    String Title;
  7.    String UnixWindows;
  8.    String PerlPath;
  9.    boolean AdminTool;
  10.    String codeBase;
  11.    static int onlyYou;
  12.    int onlyYouInvalid;
  13.    static final int MAXASSET = 50;
  14.    boolean published;
  15.    int[] assetControl;
  16.    int assetCount;
  17.    int tAssetCount;
  18.  
  19.    public String PropertyListener(String var1, String var2, int var3, int var4, IDInspector var5) {
  20.       if (var3 == 1) {
  21.          if (var1.compareTo("Subdirectory") == 0) {
  22.             return this.Subdirectory;
  23.          }
  24.  
  25.          if (var1.compareTo("Page Title") == 0) {
  26.             return this.Title;
  27.          }
  28.  
  29.          if (var1.compareTo("Publish to") == 0) {
  30.             if (this.UnixWindows.compareTo("Windows") == 0) {
  31.                return "0";
  32.             }
  33.  
  34.             if (this.UnixWindows.compareTo("Unix") == 0) {
  35.                return "1";
  36.             }
  37.  
  38.             if (this.UnixWindows.compareTo("Mac") == 0) {
  39.                return "2";
  40.             }
  41.          } else if (var1.compareTo("Perl Path for Unix") == 0) {
  42.             return this.PerlPath;
  43.          }
  44.       } else {
  45.          if (var1.compareTo("Subdirectory") == 0) {
  46.             this.Subdirectory = var2;
  47.          } else if (var1.compareTo("Page Title") == 0) {
  48.             this.Title = var2;
  49.          } else if (var1.compareTo("Publish to") == 0) {
  50.             if (var2.compareTo("0") == 0) {
  51.                this.UnixWindows = "Windows";
  52.             } else if (var2.compareTo("1") == 0) {
  53.                this.UnixWindows = "Unix";
  54.             } else {
  55.                this.UnixWindows = "Mac";
  56.             }
  57.          } else if (var1.compareTo("Perl Path for Unix") == 0) {
  58.             this.PerlPath = var2;
  59.          }
  60.  
  61.          this.cdp.setHTMLBefore("<a href=\"#\" target=_self onclick='launchBBS(\"" + this.Subdirectory + "\",\"" + this.Title + "\")'>");
  62.          this.cdp.setHTMLAfter("</a>");
  63.       }
  64.  
  65.       return "";
  66.    }
  67.  
  68.    public void onCopy() {
  69.       this.Subdirectory = new String(this.Subdirectory);
  70.       this.Title = new String(this.Title);
  71.       this.PerlPath = new String(this.PerlPath);
  72.       this.codeBase = new String(this.codeBase);
  73.       this.cam.CopyAsset(this.idScript);
  74.       int[] var1 = new int[50];
  75.  
  76.       for(this.tAssetCount = 0; this.tAssetCount < this.assetCount; ++this.tAssetCount) {
  77.          this.cam.CopyAsset(this.assetControl[this.tAssetCount]);
  78.          var1[this.tAssetCount] = this.assetControl[this.tAssetCount];
  79.       }
  80.  
  81.       this.assetControl = var1;
  82.    }
  83.  
  84.    private String getJavaScript() {
  85.       return "function newCookie(name, value){\n  document.cookie = name + \"=\" + value +  \"; path=/; domain=\" + location.hostname + \";\";     \n}\nfunction launchBBS(URL,Title){\n      var direct = location.pathname; \n   if((location.pathname.lastIndexOf(\"/\") + 1) == location.pathname.length){\t\n\t  direct = location.pathname;\t \n\t    }\t   \n      else{\t\n      direct = location.pathname.substring(0,location.pathname.lastIndexOf(\"/\")) + \"/\";\t \n\t }\n if (direct.substring(direct.length - 5, direct.length - 1) == \"html\"){\n   direct = direct.substring(0, direct.length - 6) + \"/\";\n } \n" + "if (location.port.length == 0){\n\tNURL= location.protocol+\"//\" + location.hostname + direct  + URL + \"/\";\n }\n\t else {\n NURL= location.protocol+\"//\" + location.hostname + \":\" + location.port + direct  + URL + \"/\";\n\t} \n var WinName = window.open(NURL+'index.html','netobjects_bbs','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=1,copyhistory=0,width=800,height=600');\n if (navigator.appVersion.indexOf(\"(X11\") != -1 ||\n        navigator.appVersion.indexOf(\"(Mac\") != -1)\n      newWin = window.open(NURL+'index.html','netobjects_bbs');\nnewCookie(\"URL\",NURL);\nnewCookie(\"Title\",Title);\nnewCookie(\"CgiURL\",NURL+\"cgi-bin\");\nnewCookie(\"GifURL\",NURL+\"image/webforum.gif\");\n} \n";
  86.    }
  87.  
  88.    public String onInstall(DAssetManager var1, String var2) {
  89.       this.cam = var1;
  90.       this.codeBase = var2;
  91.       return "BBS";
  92.    }
  93.  
  94.    protected void finalize() {
  95.       this.cam.RemoveAsset(this.idScript);
  96.       if (this.published) {
  97.          for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
  98.             this.cam.RemoveAsset(this.assetControl[this.assetCount]);
  99.          }
  100.       }
  101.  
  102.       if (this.onlyYouInvalid == 0) {
  103.          onlyYou = 0;
  104.       }
  105.  
  106.    }
  107.  
  108.    public void onPublish(DAssetManager var1, int var2) {
  109.       this.cdp.setHTMLBefore("<a href=\"#\" target=_self onclick='launchBBS(\"" + this.Subdirectory + "\",\"" + this.Title + "\")'>");
  110.       this.cdp.setHTMLAfter("</a>");
  111.       String var4 = this.codeBase;
  112.       DFile var5 = new DFile();
  113.       String var3 = var5.GetPathChar();
  114.       if (this.published) {
  115.          for(this.assetCount = 0; this.assetCount < 50; ++this.assetCount) {
  116.             this.cam.RemoveAsset(this.assetControl[this.assetCount]);
  117.          }
  118.       }
  119.  
  120.       this.assetCount = 0;
  121.       this.published = true;
  122.       this.assetControl[this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "bbs-control.html", "HTML\u0000", this.Subdirectory);
  123.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "bbs-message.html", "HTML\u0000", this.Subdirectory);
  124.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "blank.html", "HTML\u0000", this.Subdirectory);
  125.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "index.html", "HTML\u0000", this.Subdirectory);
  126.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "dot24_clear.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  127.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "background.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  128.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "clear.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  129.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "expand.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  130.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "listby.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  131.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "newmessage.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  132.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "next.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  133.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "previous.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  134.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "reload.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  135.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "image" + var3 + "reply.gif", "Image\u0000", this.Subdirectory + var3 + "image");
  136.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "html" + var3 + "error-char.html", "HTML\u0000", this.Subdirectory + var3 + "html");
  137.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "html" + var3 + "error.html", "HTML\u0000", this.Subdirectory + var3 + "html");
  138.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "html" + var3 + "success.html", "HTML\u0000", this.Subdirectory + var3 + "html");
  139.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "html" + var3 + "url-only-char.html", "HTML\u0000", this.Subdirectory + var3 + "html");
  140.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "html" + var3 + "urlreply.html", "HTML\u0000", this.Subdirectory + var3 + "html");
  141.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "message" + var3 + "bbs-data.original", "HTML\u0000", this.Subdirectory + var3 + "message");
  142.       this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 452);
  143.       this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "message" + var3 + "zero.counter", "HTML\u0000", this.Subdirectory + var3 + "message");
  144.       this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 452);
  145.       this.assetControl[++this.assetCount] = this.cam.AddAsset(this.Subdirectory + "" + var3 + "message" + var3 + "", "SubDir\u0000", "");
  146.       this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 455);
  147.       if (this.UnixWindows.compareTo("Windows") == 0) {
  148.          this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin-NT" + var3 + "bbs-submit.cgi", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  149.          this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  150.          this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin-NT" + var3 + "submit-bbs-form.cgi", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  151.          this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  152.          this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin-NT" + var3 + "Buf.dll", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  153.          this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  154.       } else if (this.UnixWindows.compareTo("Mac") == 0) {
  155.          this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin-mac" + var3 + "bbs-submit.cgi", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  156.          this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  157.          this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin-mac" + var3 + "submit-bbs-form.cgi", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  158.          this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  159.       } else {
  160.          if (this.UnixWindows.compareTo("Unix") == 0) {
  161.             DFile var6 = new DFile();
  162.             DFile var7 = new DFile();
  163.             var7.Open(var4 + "bbs" + var3 + "cgi-bin-Unix" + var3 + "config", 0);
  164.             var6.Open(var4 + "bbs" + var3 + "cgi-bin" + var3 + "config", 4097);
  165.             var6.WriteString("#!" + this.PerlPath + "\n", -1);
  166.             var6.WriteString(var7.ReadString(10000), -1);
  167.             var6.Close();
  168.             var7.Close();
  169.             var7.Open(var4 + "bbs" + var3 + "cgi-bin-Unix" + var3 + "submit-bbs-form.cgi", 0);
  170.             var6.Open(var4 + "bbs" + var3 + "cgi-bin" + var3 + "submit-bbs-form.cgi", 4097);
  171.             var6.WriteString("#!" + this.PerlPath + "\n\n", -1);
  172.             var6.WriteString(var7.ReadString(20000), -1);
  173.             var6.Close();
  174.             var7.Close();
  175.             var7.Open(var4 + "bbs" + var3 + "cgi-bin-Unix" + var3 + "bbs-submit.cgi", 0);
  176.             var6.Open(var4 + "bbs" + var3 + "cgi-bin" + var3 + "bbs-submit.cgi", 4097);
  177.             var6.WriteString("#!" + this.PerlPath + "\n", -1);
  178.             var6.WriteString(var7.ReadString(20000), -1);
  179.             var6.Close();
  180.             var7.Close();
  181.             this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin" + var3 + "bbs-submit.cgi", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  182.             this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  183.             this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin" + var3 + "config", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  184.             this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  185.             this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "cgi-bin" + var3 + "submit-bbs-form.cgi", "CGI\u0000", this.Subdirectory + var3 + "cgi-bin");
  186.             this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  187.             if (!this.AdminTool) {
  188.                var7.Open(var4 + "bbs" + var3 + "admin-bin-Unix" + var3 + "deleteMessage.cgi", 0);
  189.                var6.Open(var4 + "bbs" + var3 + "admin-bin" + var3 + "deleteMessage.cgi", 4097);
  190.                var6.WriteString("#!" + this.PerlPath + "\n", -1);
  191.                var6.WriteString(var7.ReadString(10000), -1);
  192.                var6.Close();
  193.                var7.Close();
  194.                var7.Open(var4 + "bbs" + var3 + "admin-bin-Unix" + var3 + "resetBBS.cgi", 0);
  195.                var6.Open(var4 + "bbs" + var3 + "admin-bin" + var3 + "resetBBS.cgi", 4097);
  196.                var6.WriteString("#!" + this.PerlPath + "\n\n", -1);
  197.                var6.WriteString(var7.ReadString(20000), -1);
  198.                var6.Close();
  199.                var7.Close();
  200.                this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "admin-bin" + var3 + "deleteMessage.cgi", "CGI\u0000", this.Subdirectory + var3 + "admin-bin");
  201.                this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  202.                this.assetControl[++this.assetCount] = this.cam.AddAsset(var4 + "bbs" + var3 + "admin-bin" + var3 + "resetBBS.cgi", "CGI\u0000", this.Subdirectory + var3 + "admin-bin");
  203.                this.cam.SetPublishAssetMode(this.assetControl[this.assetCount], 453);
  204.             }
  205.          }
  206.  
  207.       }
  208.    }
  209.  
  210.    void OnDropOK() {
  211.       this.cam.InsertScript("bbs_script_layout", this.getJavaScript());
  212.       onlyYou = 1;
  213.    }
  214.  
  215.    public void onDrop(IDLayout var1, IDRect var2, int var3) {
  216.       if (var3 != 1) {
  217.          if (var3 == 3) {
  218.             if (this.CheckTwoInstancesError()) {
  219.                return;
  220.             }
  221.  
  222.             this.OnDropOK();
  223.          }
  224.  
  225.       } else if (!this.CheckTwoInstancesError()) {
  226.          this.assetControl = new int[50];
  227.          int var4 = 0;
  228.  
  229.          do {
  230.             this.assetControl[var4] = 0;
  231.             ++var4;
  232.          } while(var4 < 50);
  233.  
  234.          String var8 = this.codeBase;
  235.          this.Subdirectory = "bbs";
  236.          this.Title = "NetObjects BBS";
  237.          this.UnixWindows = "Windows";
  238.          this.AdminTool = true;
  239.          this.PerlPath = "/usr/local/bin/perl";
  240.          this.cdp = new DDrawPicture();
  241.          DImage var5 = new DImage();
  242.          var5.setImageFile(var8 + "bbs\\image\\BBSComp.gif");
  243.          IDSize var6 = var5.getSize();
  244.          this.cdp.setImageFile(var8 + "bbs\\image\\BBSComp.gif");
  245.          this.cdp.SetPositionRect(var2.getLeft(), var2.getTop(), var2.getLeft() + var6.getWidth(), var2.getTop() + var6.getHeight());
  246.          this.cdp.setStretch(1);
  247.          this.idScript = this.cam.AddAsset("bbs_script_layout", "Java Script\u0000", "");
  248.          var1.AddObject(this.cdp);
  249.          this.OnDropOK();
  250.       }
  251.    }
  252.  
  253.    public void onInspect(CStringArray var1, CStringArray var2) {
  254.       if (this.onlyYouInvalid != 1) {
  255.          var1.Set("Subdirectory");
  256.          var2.Set("String\u0000");
  257.          var1.Set("Page Title");
  258.          var2.Set("String\u0000");
  259.          var1.Set("Publish to");
  260.          var2.Set("Set(Windows|Unix|Mac)");
  261.          var1.Set("Perl Path for Unix");
  262.          var2.Set("String\u0000");
  263.       }
  264.    }
  265.  
  266.    boolean CheckTwoInstancesError() {
  267.       if (onlyYou == 1) {
  268.          DMessageBox var1 = new DMessageBox();
  269.          var1.Warnning("Only one BBS Component is allowed per NOD file. Please delete the extra BBS Components.");
  270.          this.onlyYouInvalid = 1;
  271.          return true;
  272.       } else {
  273.          return false;
  274.       }
  275.    }
  276. }
  277.